#ifndef COMMAND_LIST_H
#define COMMAND_LIST_H

#include <string>

#include "LogicList.h"
#include "CommandBase.h"

#include <boost\date_time.hpp>

using namespace std;
using namespace boost::posix_time;
using namespace boost::gregorian;

class CommandList : public CommandBase {
public:
	enum ListType {
		LIST_ALL,
		LIST_MONTH,
		LIST_DAY,
		LIST_WEEK,
		LIST_SEARCH_TERM,
		LIST_DONE,
		LIST_INVALID
	};

	void execute();

	CommandList() {};
	CommandList( ListType listType );
	CommandList( ListType listType, string searchTerm );
	CommandList( ListType listType, ptime time );
	CommandList( ListType listType, bool done );

private:
	ListType _listType;

	string _searchTerm;
	ptime _time;
	bool _done;
};
#endif